/**
 * Null Safety
 * ? 可空类型 : 类型必须后面接一个?,才能赋值null,否则编译器报错
 * ! 类型断言 : 如果对象为null,抛出异常报错
 */

void main() {
  // int a = null;  //报错,无法赋值
  // String s = null; //报错,无法赋值

  int? a = null;
  String? s = null;

  //print(s.length);  //报错,因为s可以为null,因此编译器报错
  print(s?.length);
  print(s!.length);  //类型断言,如果s为null,抛出异常
}
